package easy.trace.core;

import easy.trace.core.context.TraceContext;

/**
 * @author easy
 */
public interface Interceptor {

    /**
     * 初始化context
     *
     * @param context
     */
    void init(TraceContext context);

    /**
     * invoke 前执行
     */
    void beforeHandle();

    /**
     * invoke 后执行
     */
    void afterHandle();

    /**
     * 异常拦截处理
     *
     * @param e
     */
    void encounterException(Exception e);
}
